<!--
  Created by IntelliJ IDEA.
  User: Dai
  Date: 2018/4/4
  Time: 9:40
  To change this template use File | Settings | File Templates.
-->
<!DOCTYPE html>
<html lang="en" layout:decorate="~{default/just_css_and_js}" xmlns:layout="http://www.w3.org/1999/xhtml"
      xmlns:th="http://www.w3.org/1999/xhtml">
<head>
    <link href="/css/bootstrap-datetimepicker.min.css" rel="stylesheet" media="screen">
    <style>
        /*这个页面上的表格的样式*/
        .th-inner {
            height: 20px;
            line-height: 20px;
            font-size: 13px;
            padding: 0 !important;
            /* background-image: none; */
            background-color: white;
            border: 0 !important;
        }

        table {
            border: 0 !important;
        }

        tr {
            border: 0 !important;
        }

        /*实时监控 电池包监控 字太多放不下*/
        #package_monitor label {
            padding-right: 0;
            margin-top: 4px;
        }

        #package_monitor span {
            padding-right: 0;
            margin-top: 4px;
        }

        #package_monitor .col-sm-2 {
            padding-left: 0;
        }

        /*实时监控 模组监控 行转列只能用div做了*/
        .div-like-form .div-left div {
            text-align: center;
            padding: 5px 15px;
        }

        .div-like-form .div-left div:first-child {
            background-color: #c2c2c2;
        }

        .div-like-form .div-left {
            float: left;
        }

        .div-like-form .div-left.first-child div {
            padding: 5px 40px;
        }

        #vol_high, #vol_low, #tmp_high, #tmp_low {
            width: 50%;
        }
    </style>
    <script src="/js/echarts.min.js"></script>
    <!-- datepicker 时间选择器 -->
    <script src="/js/bootstrap-datetimepicker.min.js"></script>
    <script src="/js/bootstrap-datetimepicker.zh-CN.js"></script>
    <script>
        /**
         * 限制开始时间和结束时间不能互相超过
         */
        $(function () {
            $("#start_time_select").datetimepicker({
                bootcssVer: 3,   //设置读取bootstrap3，否则默认读取bootstrap2，左右箭头会不见
                startView: 2,
                format: "yyyy-mm-dd",
                minView: "month",
                todayBtn: "linked",
                todayHighlight: true,
                language: "zh-CN",
                showMeridian: true,
                autoclose: true,
                endDate: new Date()
            }).on('changeDate', function (ev) {
                var starttime = $("#start_time_select").val();
                $("#end_time_select").datetimepicker('setStartDate', starttime);
                change_data_type_of_date();
            });
            $("#end_time_select").datetimepicker({
                bootcssVer: 3,   //设置读取bootstrap3，否则默认读取bootstrap2，左右箭头会不见
                startView: 2,
                minView: "month",
                format: "yyyy-mm-dd",
                todayBtn: "linked",
                todayHighlight: true,
                language: "zh-CN",
                autoclose: true,
                showMeridian: true,
                endDate: new Date()
            }).on('changeDate', function (ev) {
                var endtime = $("#end_time_select").val();
                $("#start_time_select").datetimepicker('setEndDate', endtime);
                change_data_type_of_date();
            });
        });

        /**
         * 根据自定义的天数决定是否显示小时
         */
        function change_data_type_of_date() {
            var starttime = $("#start_time_select").val();
            var endtime = $("#end_time_select").val();
            $("#data_freque").empty();
            var str = "";
            var cha = GetDateDiff(starttime, endtime);
            console.log(cha);
            if (cha > 8) {
                str = '<button type="button" class="btn btn-choose-red active">日</button>';
            } else {
                str = '<button type="button" class="btn btn-choose-red active">日</button><button type="button" class="btn btn-choose-red">小时</button>';
            }
            $("#data_freque").prepend(str);
            change_data_type($(this));
            $('#data_freque button').click(function (e) {
                change_data_type($(this));
            });
        }

        /**
         * 计算两个日期之间的相距天数
         */
        function GetDateDiff(starttime, endtime) {
            var startTime = new Date(Date.parse(starttime.replace(/-/g, "/"))).getTime();
            var endTime = new Date(Date.parse(endtime.replace(/-/g, "/"))).getTime();
            var dates = Math.abs((startTime - endTime)) / (1000 * 60 * 60 * 24);
            return dates;
        }
    </script>
    <!--页面上的一些js-->
    <script>
        /**
         * 历史查询中的button
         */
        var str_1 =
            '<button type="button" class="btn btn-choose-red active" name="replace_name" value="replace_value">replace_this</button>';
        var str_other =
            '<button type="button" class="btn btn-choose-red" name="replace_name" value="replace_value">replace_this</button>';

        /**
         * 点击切换tab页面
         * @param e
         */
        function changeTab(e) {
            // 1. 切换活跃状态
            $(e).parent().siblings().removeClass("active");
            $(e).parent().addClass("active");
            // 2. 根据id显示页面
            var id = $(e).attr("id").replace("title", "step");
            console.log(id);
            $("#" + id).siblings().hide();
            $("#" + id).show();
//            if (id == "default-step-0"){
//                interval = setInterval("refresh()", 10000);
//            } else {
//                clearInterval(interval);
//            }
        }

        //        /**
        //         * 定时任务
        //         */
        //        var interval;
        //        function refresh(){
        //            var frame = window.parent.document.getElementById("iframe");
        //            var path = frame.getAttribute("src");
        //            frame.setAttribute("src", path);
        //        }

        /**
         * 实时数据 -> 单体电压/温度 排名
         * 点击 表格<>柱状图 按钮 切换表格和柱状图的显示
         */
        function table_or_bar() {
            $("#top_and_bottom").toggle();
            $("#top_and_bottom").prev().toggle();
        }

        /**
         * 实时数据 中的 温度/电压排名 中的 表格的table字段格式
         */
        var voltage_data_format = [
            {
                field: 'top_value',
                title: '电压(V)',
                formatter: function (value, row, index) {
                    return value.toFixed(2);
                }
            },
            {
                field: 'top_name',
                title: '单体'
            },
            {
                field: 'bottom_value',
                title: '电压(V)',
                formatter: function (value, row, index) {
                    return value.toFixed(2);
                }
            },
            {
                field: 'bottom_name',
                title: '单体'
            }
        ];
        var temperature_data_format = [
            {
                field: 'top_value',
                title: '温度(℃)',
                formatter: function (value, row, index) {
                    return value.toFixed(2);
                }
            },
            {
                field: 'top_name',
                title: '单体'
            },
            {
                field: 'bottom_value',
                title: '温度(℃)',
                formatter: function (value, row, index) {
                    return value.toFixed(2);
                }
            },
            {
                field: 'bottom_name',
                title: '单体'
            }
        ];
        /**
         * 初始化table
         */
        window.onload = function () {
            var id = $("#id").val();
            $("#voltage").bootstrapTable({
                queryParamsType: "undefined",
                columns: voltage_data_format,
                url: "/monitor/get_voltage_group_data?id=" + id
            });
            // $("#temperature").bootstrapTable({
            //     queryParamsType: "undefined",
            //     columns: temperature_data_format,
            //     url: "/monitor/get_temperature_data?id=" + id
            // });
        };

        /**
         * 图表
         */
        $(function () {
            /**
             * 历史数据中的图表
             */
            $("#search_history").css("width", $("#default-step-0").width());
            btn_choose_red();
            /**
             * 实时监控 - 电压/电流/SOC  今日曲线
             */
            today_line();
            /**
             * 实时监控 - 电压/温度 今日极值/极差曲线
             */
            today_bar();
        });

        /**
         * 初始化页面
         */
        $(function () {
            /**
             * 实时数据 - 单体电压/温度 排名  柱状图
             */
            top_and_bottom();
            /**
             * 除了第一个其他的页面都不显示
             */
            $("#default-step-0").show().siblings().hide();
            $("#time_select").hide();
            /**
             * 按钮点击事件
             */
            button_click();
            /**
             * 更改 实时监控 模组监控 div 宽度
             */
            change_model_monitor_div_width();
            /**
             * 实时监控 - 单体电池电压/温度监控 根据电压显示背景颜色
             */
            get_voltage_color();
            /**
             * 实时监控 - 单体电池电压/温度监控 根据温度显示背景颜色
             */
          /*  get_temperature_color();*/
            /**
             * 隐藏所有提示
             */
            $(".prompt").hide();
            //定时任务
            //interval = setInterval("refresh()", 10000);
        });

        /**
         * 更改 实时监控 模组监控 div 宽度
         */
        function change_model_monitor_div_width() {
            var num = $(".div-left").length;
            var father_width = $(".div-like-form").width();
            var first_width = $(".first-child").width();
            var width = ((father_width - first_width) / 7 - 1);
            $(".div-like-form .div-left").each(function (index) {
                if (!$(this).hasClass("first-child")) {
                    $(this).css("width", width);
                }
            });
        }

        /**
         * 实时监控 - 单体电池电压/温度监控 根据电压显示背景颜色
         */
        function get_voltage_color(name) {
            var vol_low = $("#vol_low").val();
            var vol_high = $("#vol_high").val();
            var num = (vol_high - vol_low) / 4;
            $(".get_voltage_color").each(function (index) {
                var text = $(this).text().valueOf();
                var index = text - vol_low;
                if (index == 0) {
                    $(this).removeClass("color-1").removeClass("color-2").removeClass("color-3").addClass("color-0");
                } else if (index > 0) {
                    index = Math.floor(index / num);
                    if (index < 1) {
                        $(this).removeClass("color-1").removeClass("color-2").removeClass("color-3").addClass("color-0");
                    } else if (index < 2) {
                        $(this).removeClass("color-0").removeClass("color-2").removeClass("color-3").addClass("color-1");
                    } else if (index < 3) {
                        $(this).removeClass("color-0").removeClass("color-1").removeClass("color-3").addClass("color-2");
                    } else if (index < 4) {
                        $(this).removeClass("color-0").removeClass("color-1").removeClass("color-2").addClass("color-3");
                    } else {
                        $(this).removeClass("color-0").removeClass("color-1").removeClass("color-2").removeClass("color-3");
                    }
                } else {
                    $(this).removeClass("color-1").removeClass("color-2").removeClass("color-3").removeClass("color-0");
                }
            });
            if (name) {
                var val;
                if (name == "vol_low") {
                    val = vol_low;
                } else {
                    val = vol_high;
                }
                $.post("/monitor/save_high_and_low", {id: $("#id").val(), name: name, val: val});
            }

        }
        /*var vol_low = $("#vol_low").val();
            var vol_high = $("#vol_high").val();
            var num = (vol_high - vol_low) / 2;//中间值
            var val = (num - vol_low) / 5; //上线下线的比较值
            var i = 1;
            $(".get_voltage_color").each(function (index) {
                var text = $(this).text().valueOf();
                if (text == 0.0) {
                    $(this).removeClass("color-1").removeClass("color-2").removeClass("color-3").removeClass("color-0");
                } else if (text > 0.0) {
                    if (vol_low<=text<(vol_low + val * i)) {
                        $(this).removeClass("color-1").removeClass("color-2").removeClass("color-3").addClass("color-0");
                    } else if (vol_low<=text<(vol_low + val * (i*2))) {
                        $(this).removeClass("color-0").removeClass("color-2").removeClass("color-3").addClass("color-1");
                    } else if (vol_low<=text<(vol_low + val * (i*3))) {
                        $(this).removeClass("color-0").removeClass("color-1").removeClass("color-3").addClass("color-2");
                    } else if (vol_low<=text<(vol_low + val * (i*4))) {
                        $(this).removeClass("color-0").removeClass("color-1").removeClass("color-2").addClass("color-3");
                    } else {
                        $(this).removeClass("color-0").removeClass("color-1").removeClass("color-2").removeClass("color-3");
                    }
                } else {
                    $(this).removeClass("color-1").removeClass("color-2").removeClass("color-3").removeClass("color-0");
                }
            });
            if (name) {
                var val;
                if (name == "vol_low") {
                    val = vol_low;
                } else {
                    val = vol_high;
                }
               $.post("/monitor/save_high_and_low", {id: $("#id").val(), name: name, val: val});
            }*/

        /**
         * 实时监控 - 单体电池电压/
         */
        // function get_temperature_color(name) {
        //     var tmp_low = $("#tmp_low").val();
        //     var tmp_high = $("#tmp_high").val();
        //     var num = (tmp_high - tmp_low) / 2; //上线下线的中间值
        //     var val = (num - tmp_low) / 5; //上线下线的比较值
        //     $(".get_temperature_color").each(function (index) {
        //         var text = $(this).text().valueOf();
        //
        //         var index = text - tmp_low;
        //
        //         if (index == 0) {
        //             $(this).removeClass("color-5").removeClass("color-6").removeClass("color-7").addClass("color-4");
        //         } else if (index > 0) {
        //             index = Math.floor(index / num);
        //             if (index < 1) {
        //                 $(this).removeClass("color-5").removeClass("color-6").removeClass("color-7").addClass("color-4");
        //             } else if (index < 2) {
        //                 $(this).removeClass("color-4").removeClass("color-6").removeClass("color-7").addClass("color-5");
        //             } else if (index < 3) {
        //                 $(this).removeClass("color-5").removeClass("color-4").removeClass("color-7").addClass("color-6");
        //             } else if (index < 4) {
        //                 $(this).removeClass("color-5").removeClass("color-6").removeClass("color-4").addClass("color-7");
        //             } else {
        //                 $(this).removeClass("color-5").removeClass("color-6").removeClass("color-4").removeClass("color-7");
        //             }
        //         } else {
        //             $(this).removeClass("color-5").removeClass("color-6").removeClass("color-7").removeClass("color-4");
        //         }
        //     });
        //     if (name) {
        //         var val;
        //         if (name == "tmp_low") {
        //             val = tmp_low;
        //         } else {
        //             val = tmp_high;
        //         }
        //        $.post("/monitor/save_high_and_low", {id: $("#id").val(), name: name, val: val});
        //     }
        // }


        /**
         * 历史数据 按钮点击事件
         * 这边还是写个逻辑吧：
         * 点击 测点类别 -> 更改 测点名称 -> 发送请求更改显示图表
         * 点击 测点名称 -> 发送请求更改显示图表
         * 点击 时间范围 -> 更改 显示密度 -> 更改 显示类别 -> 发送请求更改显示图表
         * 点击 显示密度 -> 更改 显示类别 -> 发送请求更改显示图表
         * 点击 显示类别 -> 发送请求更改显示图表
         */
        function button_click() {
            /**
             * 点击 测点类别 -> 更改 测点名称 -> 发送请求更改显示图表
             */
            $('button[name="objType"]').click(function (e) {
                change_test_name($(this));
            });
            /**
             * 点击 测点名称 -> 发送请求更改显示图表
             * 1. 更改按钮显示
             * 2. 发送请求更改显示图表
             */
            $('button[name="name"]').click(function (e) {
                $(this).addClass('active').siblings().removeClass('active');
                // 发送请求更改图表
               btn_choose_red();
            });
            /**
             * 点击 时间范围 -> 更改 显示密度 -> 更改 显示类别 -> 发送请求更改显示图表
             */
            $('button[name="ranges"]').click(function (e) {
                change_data_freque($(this));
            });
            /**
             * 点击 显示密度 -> 更改 显示类别 -> 发送请求更改显示图表
             */
            $('button[name="freque"]').click(function (e) {
                change_data_type($(this));
            });
            /**
             * 点击 显示类别 -> 发送请求更改显示图表
             * 1. 更改按钮显示
             * 2. 发送请求更改显示图表
             */
            $('button[name="show_type"]').click(function (e) {
                $(this).addClass('active').siblings().removeClass('active');
                // 发送请求更改图表
                btn_choose_red();
            });
        }

        /**
         * 点击 测点类别 -> 更改 测点名称 -> 发送请求更改显示图表
         * 1. 更改 测点名称
         *      1)  更改按钮显示
         *      2)  更改测点名称
         *      3)  绑定测点名称单击事件
         * 2. 发送请求更改显示图表
         */
        function change_test_name(button) {
            // 1)  更改按钮显示
            $(button).addClass('active').siblings().removeClass('active');
            // 2)  更改测点名称
            var text = $(button).text();
            $("#history_name").empty();
            var str = "";
            switch (text) {
                case "电压":
                    str = str_1.replace("replace_this", "模组电压").replace("replace_name", "name").replace("replace_value", "模组电压") + str_other.replace("replace_this", "单体电压极值和极差").replace("replace_value" ,"单体电压极值和极差").replace("replace_name","单体电压极值和极差");
                    break;
                case "电流":
                    str = str_1.replace("replace_this", "电流").replace("replace_name", "name").replace("replace_value", "电流");
                    break;
               /* case "温度":
                    str = str_1.replace("replace_this", "温度") + str_other.replace("replace_this", "单体温度极值和极差(多选)") + str_other.replace("replace_this", "测点温度");
                    break;*/
            }
            $("#history_name").prepend(str);
            // 3)  绑定测点名称单击事件
            $('button[name="name"]').click(function (e) {
                /**
                 * 点击 测点名称 -> 发送请求更改显示图表
                 * 1. 更改按钮显示
                 * 2. 发送请求更改显示图表
                 */
                $(this).addClass('active').siblings().removeClass('active');
                // 发送请求更改图表
                btn_choose_red();
            });
            // 2. 发送请求更改显示图表
            btn_choose_red();
        }

        /**
         * 点击 时间范围 -> 更改 显示密度 -> 更改 显示类别 -> 发送请求更改显示图表
         * 1. 更改 显示密度
         *      1)  更改按钮显示
         *      2)  更改显示密度
         *      3)  绑定显示密度单击事件
         * 2. 更改 显示类别 -> 发送请求更改显示图表
         */
        function change_data_freque(button) {
            // 1)  更改按钮显示
            $(button).addClass('active').siblings().removeClass('active');
            // 2)  更改显示密度
            var text = $(button).text();
            $("#history_freque").empty();
            var str = "";
            switch (text) {
                case "日":
                    str = str_1.replace("replace_this", "小时").replace("replace_name", "freque").replace("replace_value", "hour")
                        + str_other.replace("replace_this", "15分钟").replace("replace_name", "freque").replace("replace_value", "15");
                    $("#time_select").hide();
                    break;
                case "周":
                    str = str_1.replace("replace_this", "日").replace("replace_name", "freque").replace("replace_value", "day")
                        + str_other.replace("replace_this", "小时").replace("replace_name", "freque").replace("replace_value", "hour");
                    $("#time_select").hide();
                    break;
                case "月":
                    str = str_1.replace("replace_this", "日").replace("replace_name", "freque").replace("replace_value", "day");
                    $("#time_select").hide();
                    break;
                case "年":
                    str = str_1.replace("replace_this", "月").replace("replace_name", "freque").replace("replace_value", "month");
                    $("#time_select").hide();
                    break;
                case "自定义":
                    str = str_1.replace("replace_this", "日").replace("replace_name", "freque").replace("replace_value", "day")
                        + str_other.replace("replace_this", "小时").replace("replace_name", "freque").replace("replace_value", "hour");
                    $("#time_select").show();
                    break;
            }
            $("#history_freque").prepend(str);
            // 3)  绑定显示密度单击事件
            $('button[name="freque"]').click(function (e) {
                /**
                 * 点击 显示密度 -> 更改 显示类别 -> 发送请求更改显示图表
                 */
                change_data_type($(this));
            });
            // 2. 更改 显示类别 -> 发送请求更改显示图表
            change_data_type($(this));
        }

        /**
         * 点击 显示密度 -> 更改 显示类别 -> 发送请求更改显示图表
         * 1. 更改 显示类别
         *      1)  更改按钮显示
         *      2)  更改显示类别
         *      3)  绑定显示类别单击事件
         * 2. 发送请求更改显示图表
         */
        function change_data_type(button) {
            // 1)  更改按钮显示
            $(button).addClass('active').siblings().removeClass('active');
            // 2)  更改显示类别
            var text = $(button).text();
            if (text == '15分钟') {
                $("#history_show_type").empty();
                $("#history_show_type").prepend(str_1.replace("replace_this", "瞬态值").replace("replace_name", "show_type").replace("replace_value", "now"));
            } else {
                if ($("#history_show_type").children().size() != 3) {
                    var str = str_1.replace("replace_this", "平均值").replace("replace_name", "show_type").replace("replace_value", "avg")
                        + str_other.replace("replace_this", "最大值").replace("replace_name", "show_type").replace("replace_value", "max")
                        + str_other.replace("replace_this", "最小值").replace("replace_name", "show_type").replace("replace_value", "min");
                    $("#history_show_type").empty();
                    $("#history_show_type").prepend(str);
                }
            }
            // 3)  绑定显示类别单击事件
            $('button[name="show_type"]').click(function (e) {
                /**
                 * 点击 显示类别 -> 发送请求更改显示图表
                 * 1. 更改按钮显示
                 * 2. 发送请求更改显示图表
                 */
                $(this).addClass('active').siblings().removeClass('active');
                // 发送请求更改图表
                btn_choose_red();
            });
            // 2. 发送请求更改显示图表
            btn_choose_red();
        }

        /**
         * 发送请求更改显示图表
         * 1. 预设图表
         * 2. 获取请求数据
         * 3. 发送请求并获取返回值设置图表
         */
        function btn_choose_red() {
            // 1. 获取请求数据
            var objType, name, ranges, freque, show_type, start_time = null, end_time = null;
            $("button.active").each(function (i, v) {
                var title = $(v).attr("name");
                switch (title) {
                    case "objType":
                        objType = $(v).val();
                        break;
                    case "name":
                        name = $(v).val();
                        break;
                    case "ranges":
                        ranges = $(v).val();
                        break;
                    case "freque":
                        freque = $(v).val();
                        break;
                    case "show_type":
                        show_type = $(v).val();
                        break;
                }
            });
            if (ranges == "custom") {
                start_time = $("#start_time").val();
                if (start_time == "") {
                    return false;
                }
                end_time = $("#end_time").val();
                if (end_time == "") {
                    return false;
                }
            }
            // 2. 预设图表
            var history = echarts.init(document.getElementById('search_history'));
            history.setOption({
                title: {                // 标题
                    left: 'center',
                    top: '3%',
                    text: ""
                },
                grid: {                 // 设置边距
                    left: '0%',
                    right: '3%',
                    bottom: '10%',
                    containLabel: true  // 是否包含显示的刻度
                },
                tooltip: {              // 提示框组件
                    trigger: 'axis'     // 触发类型 axis坐标轴触发
                },
                legend: {               // 图例
                    data: [],
                    x: 'center',        //中间
                    y: 'bottom'         //下方
                },
                toolbox: {              // 工具栏
                    show: true,
                    top: '3%',
                    feature: {
                        dataView: {readOnly: false},        //数据视图
                        magicType: {type: ['line', 'bar']}, //变换类型
                        restore: {},                        //刷新
                        saveAsImage: {}                     //保存图片
                    }
                },
                xAxis: {                // x轴
                    type: 'category',
                    boundaryGap: false,  //坐标轴两边留白，如果是false就是0点在y轴上
                    data: []
                },
                yAxis: [
                    {
                        type: 'value',
                        boundaryGap: true,
                        // min: 0,
                        max: function (value) {
                            return value.max + 100;
                        }
                    }
                ],series: [
                    {
                        name: '单体电压最低(V)',
                        type: 'line',
                        stack: '电压',
                        //color: '#FFFFFF',
                        barMaxWidth: 30,//最大宽度
                        data: []
                    },
                    {
                        name: '单体电压极差(V)',
                        type: 'line',
                        stack: '电压',
                        barMaxWidth: 30,//最大宽度
                        data: []
                    }
                ]
            });
            // 3. 发送请求并获取返回值设置图表
            $.post("/monitor/history_group_data_equipment",
                {
                    id: $("#id").val(),
                    objType: objType,
                    name: name,
                    ranges: ranges,
                    freque: freque,
                    show_type: show_type,
                    start_time: start_time,
                    end_time: end_time
                },
                function (map) {
                    // 1. 如果返回null就走下面的了
                    if (!map.jsonObject) {
                        history.clear();
//                        alert("未配置测点名称对应测点参数！");
                        return false;
                    }
                    if (map.jsonObject != null && map.minjsonObject != null) {
                        history.setOption({
                            title: {
                                text: map.title
                            },
                            xAxis: {
                                data: Object.keys(map.jsonObject).sort()
                            },
                            series: [
                                {
                                    name: '单体电压最低(V)',
                                    data: Object.keys(map.jsonObject).sort().map(function (key) {
                                        return map.jsonObject[key].toFixed(2);
                                    })
                                }, {
                                    name: '单体电压极差(V)',
                                    data: Object.keys(map.minjsonObject).sort().map(function (key) {
                                        return map.minjsonObject[key].toFixed(2);
                                    })
                                }]
                        });

                    }
                    // 2. 如果有值的话就放进去
                    history.setOption({
                        title: {
                            text: map.title
                        },
                        xAxis: {
                            data: Object.keys(map.jsonObject).sort()
                        },
                        series: [
                            {
                                name: name,
                                type: 'line',
                                data: Object.keys(map.jsonObject).sort().map(function (key) {
                                    return map.jsonObject[key].toFixed(2);
                                })
                            }
                        ]
                    });
                }
            );
        }

        /**
         * 实时数据 - 单体电压
         */
        function top_and_bottom() {
            console.log("111");
            $("#top_and_bottom").css("width", $("#table_or_bar").parent().width());
            console.log("222");
            var top_and_bottom = echarts.init(document.getElementById('top_and_bottom'));
            console.log("333");
            $.post("/monitor/get_top_and_bottom", {id: $("#id").val()}, function (map) {
                top_and_bottom.setOption({
                    title: [{
                        text: "电压最值",
                        x: '2%',
                        y: '0%',
                        textStyle: {
                            fontSize: "14"
                        }
                    },
                        {
                            text: "温度最值",
                            x: '52%',
                            y: '0%',
                            textStyle: {
                                fontSize: "14"
                            }
                        }
                    ],
                    tooltip: {
                        trigger: 'axis',
                        axisPointer: {            // 坐标轴指示器，坐标轴触发有效
                            type: 'shadow'        // 默认为直线，可选为：'line' | 'shadow'
                        }
                    },
                    grid: [
                        {
                            x: '0%',
                            y: '12%',
                            width: '45%',
                            height: '90%',
                            containLabel: true
                        },
                        {
                            x: '50%',
                            y: '12%',
                            width: '45%',
                            height: '90%',
                            containLabel: true
                        }
                    ],
                    xAxis: [
                        {
                            gridIndex: 0,
                            type: 'value',
                            show: false,
                            splitLine: {    //不显示坐标辅助线
                                show: false
                            }
                        },
                        {
                            gridIndex: 1,
                            type: 'value',
                            show: false,
                            splitLine: {    //不显示坐标辅助线
                                show: false
                            }
                        }

                    ],
                    yAxis: [
                        {
                            gridIndex: 0,
                            type: 'category',
                            axisTick: {
                                alignWithLabel: true
                            },
                            data: 0.0 /*Object.keys(map.voltageList).sort(function (a, b) {
                                return map.voltageList[a] - map.voltageList[b];
                            })*/
                        },
                        {
                            gridIndex: 1,
                            type: 'category',
                            axisTick: {
                                alignWithLabel: true
                            },
                            data:0.0/* Object.keys(map.temperatureList).sort(function (a, b) {
                                return map.temperatureList[a] - map.temperatureList[b];
                            })*/
                        }
                    ],
                    series: [
                        {
                            name: "电压最值",
                            type: 'bar',
                            xAxisIndex: 0,
                            yAxisIndex: 0,
                            data:0.0 /*Object.keys(map.voltageList).sort(function (a, b) {
                                return map.voltageList[a] - map.voltageList[b];
                            }).map(function (key) {
                                return map.voltageList[key].toFixed(2);
                            })*/
                        }, {
                            name: "温度最值",
                            type: 'bar',
                            xAxisIndex: 1,
                            yAxisIndex: 1,
                            data:0.0 /*Object.keys(map.temperatureList).sort(function (a, b) {
                                return map.temperatureList[a] - map.temperatureList[b];
                            }).map(function (key) {
                                return map.temperatureList[key].toFixed(2);
                            })*/
                        }
                    ]
                });
                /**
                 * 单体电压/温度 排名 隐藏柱状图
                 */
                $("#top_and_bottom").hide();
            });
        }

        /**
         * 实时监控 - 电压/电流/SOC  今日曲线
         */
        function today_line() {
            var today_line = echarts.init(document.getElementById('today_line'));
            today_line.setOption({
                title: {                // 标题
                    left: 'center',
                    text: '电压/SOC  今日曲线'
                },
                grid: {                 // 设置边距
                    left: '0%',
                    right: '3%',
                    bottom: '10%',
                    containLabel: true  // 是否包含显示的刻度
                },
                tooltip: {              // 提示框组件
                    trigger: 'axis'     // 触发类型 axis坐标轴触发
                },
                legend: {               // 图例
                    data: ['电压', 'SOC'],
                    x: 'center',        //中间
                    y: '10%',           //下方
                    selectedMode: false  //取消图例上的点击事件
                },
                toolbox: [
                    {              // 工具栏
                        show: true,
                        feature: {
                            dataView: {readOnly: false},        //数据视图
                            magicType: {type: ['line', 'bar']}, //变换类型
                            restore: {},                        //刷新
                            saveAsImage: {}                     //保存图片
                        }
                    }
                ],
                xAxis: {                // x轴
                    type: 'category',
                    boundaryGap: false,  //坐标轴两边留白，如果是false就是0点在y轴上
                    data: []
                },
                yAxis: [
                    {
                        splitLine: {    //不显示坐标辅助线
                            show: false
                        },
                        name: '电压(V)',
                        type: 'value',
                        boundaryGap: true,
                        // min: 0,
                        max: function (value) {
                            return (value.max + 100).toFixed(0);
                        }
                    },
                    {
                        splitLine: {    //不显示坐标辅助线
                            show: false
                        },
                        name: 'SOC',
                        type: 'value',
                        min: 0,
                        max: 100,
                        axisLabel: {
                            formatter: '{value} %'
                        }
                    }
                ],
                series: [
                    {
                        name: '电压',
                        type: 'line',
                        data: []
                    },
                    {
                        name: 'SOC',
                        type: 'line',
                        yAxisIndex: 1,  //使用第二个Y轴
                        data: []
                    }
                ]
            });
            today_line.showLoading();
            $.post("/monitor/get_group_today_line", {id: $("#id").val()}, function (map) {
                today_line.hideLoading();
                if (map.voltageList != null) {
                    today_line.setOption(
                        {
                            xAxis: {
                                data: Object.keys(map.voltageList).sort()
                            },
                            series: [
                                {
                                    name: '电压',
                                    data: Object.keys(map.voltageList).sort().map(function (key) {
                                        return map.voltageList[key].toFixed(2);
                                    })
                                }
                            ]
                        }
                    );
                }
                if(map.socList != null){
                    today_line.setOption(
                        {
                            xAxis: {
                                data: Object.keys(map.voltageList).sort()
                            },
                            series: [
                                {
                                    name: 'SOC',
                                    data: Object.keys(map.socList).sort().map(function (key) {
                                        return map.socList[key];
                                    })
                                }
                            ]
                        }
                    );
                }
            });
        }

        /**
         * 实时监控 - 电压/温度 今日极值/极差曲线
         */
        function today_bar() {
            var today_bar = echarts.init(document.getElementById('today_bar'));
            today_bar.setOption({
                title: {                // 标题
                    left: 'center',
                    text: '电压 今日极值/极差曲线'
                },
                grid: {                 // 设置边距
                    left: '0%',
                    right: '3%',
                    bottom: '10%',
                    containLabel: true  // 是否包含显示的刻度
                },
                tooltip: {              // 提示框组件
                    trigger: 'axis',    // 触发类型 axis坐标轴触发
                    formatter: function (params) {
                        var length = params.length;
                        var value1 = Number(params[0].value) + Number(params[1].value);
                       // var value2 = Number(params[2].value) + Number(params[3].value);
                        var str = params[0].name + "<br>";
                        str += params[0].seriesName + ":&nbsp;" + params[0].value + "<br>";
                        //str += "单体电压最高(V):&nbsp;" + value1.toFixed(2) + "<br>";
                        str += params[1].seriesName + ":&nbsp;" + params[1].value + "<br>";
                       // str += params[2].seriesName + ":&nbsp;" + params[2].value + "<br>";
                       // str += "单体温度最高(℃):&nbsp;" + value2.toFixed(2) + "<br>";
                       // str += params[3].seriesName + ":&nbsp;" + params[3].value + "<br>";
                        return str;
                    }
                },
                legend: {               // 图例
                    data: ['单体电压极差(V)'],
                    x: 'center',        //中间
                    y: '10%',           //下方
                    selectedMode: false  //取消图例上的点击事件
                },
                toolbox: [
                    {              // 工具栏
                        show: true,
                        top: '3%',
                        feature: {
                            dataView: {readOnly: false},        //数据视图
                            magicType: {type: ['line', 'bar']}, //变换类型
                            restore: {},                        //刷新
                            saveAsImage: {}                     //保存图片
                        }
                    }
                ],
                xAxis: {                // x轴
                    type: 'category',
                    boundaryGap: true,  //坐标轴两边留白
                    data: []
                },
                yAxis: [
                    {
                        splitLine: {    //不显示坐标辅助线
                            show: false
                        },
                        name: '电压(V)',
                        type: 'value',
                        boundaryGap: true,
                        // min: 0,
                        max: function (value) {
                            return (value.max + 5).toFixed(2);
                        }
                    }

                ],
                series: [
                    {
                        name: '单体电压最低(V)',
                        type: 'bar',
                        stack: '电压',
                        color: '#42426f',
                        barMaxWidth: 30,//最大宽度
                        data: []
                    },
                    {
                        name: '单体电压极差(V)',
                        type: 'bar',
                        stack: '电压',
                        barMaxWidth: 30,//最大宽度
                        data: []
                    },

                ]
            });
            today_bar.showLoading();
            $.post("/monitor/get_group_today_bar", {id: $("#id").val()}, function (map) {
                today_bar.hideLoading();
                if (map.voltageLowList != null && map.voltageDifferenceList != null) {
                    today_bar.setOption(
                        {
                            xAxis: {
                                data: Object.keys(map.voltageLowList).sort()
                            },
                            series: [
                                {
                                    name: '单体电压最低(V)',
                                    data: Object.keys(map.voltageLowList).sort().map(function (key) {
                                        return map.voltageLowList[key].toFixed(2);
                                    })
                                }, {
                                    name: '单体电压极差(V)',
                                    data: Object.keys(map.voltageDifferenceList).sort().map(function (key) {
                                        return map.voltageDifferenceList[key].toFixed(2);
                                    })
                                }
                            ]
                        }
                    );
                }
            });
        }
    </script>
</head>
<body>
<div layout:fragment="content">
    <div class="main-content-inner">
        <input type="hidden" id="id" th:value="${id}">
        <!--面包屑导航栏-->
        <ul class="breadcrumb">
            <li>
                <a href="#">系统监控</a>
            </li>
            <li class="active" th:text="${equipmentManage.project.name}"></li>
            <li class="active" th:text="${equipmentManage.parent.name}"></li>
            <li class="active" th:text="${equipmentManage.name}"></li>
        </ul>
        <!-- 标题tab -->
        <ul class="nav nav-tabs">

            <li role="presentation" class="active"><a href="#" onclick="changeTab(this)" id="default-title-0">实时数据</a>
            </li>
            <li role="presentation"><a href="#" onclick="changeTab(this)" id="default-title-1">历史数据</a></li>
        </ul>
        <!-- 内容显示 -->
        <h1 th:text="${message}" th:if="${message!=null}" style="text-align: center;"></h1>
        <div th:if="${message==null}">
            <!--实时监控-->
            <form id="default-step-0" class="container-fluid">
                <!--模组监控-->
                <fieldset class="col-sm-5" id="package_monitor" style="margin-right: 10px; padding-left: 7px">
                    <legend>模组监控</legend>
                    <div style="height: 210px; overflow-x: auto">
                        <div class="col-sm-6" th:each="parameter : ${parameterInfoList}">
                            <label class="col-sm-6" th:text="${parameter.name}"></label>
                            <span class="col-sm-4"
                                  th:text="${parameter.value==null?'暂无数据':#numbers.formatDecimal({parameter.value}, 1, 2)}">
                            </span>
                            <span class="col-sm-2" th:text="${parameter.unit}"></span>
                        </div>
                    </div>
                </fieldset>
                <!--单体电压/温度-->
                <fieldset style="height: 256px">
                    <legend>单体电压</legend>
                    <div style="width: 100%">
                        <a style="float: right" onclick="table_or_bar()" id="table_or_bar">表格&lt;&gt;柱状图</a>
                    </div>
                    <div style="height: 200px; float: left; overflow-x: auto; width: 100%">
                        <div style="padding: 2px; width: 100%; float: left">
                            <label style="text-align: center; width: 100%">电压TOP 3/BOTTOM 3</label>
                            <table id="voltage" class="table table-condensed"></table>
                        </div>
                    </div>
                    <div id="top_and_bottom" style="height: 200px; float: left"></div>
                </fieldset>
                <!--电压/电流/SOC  今日曲线-->
                <div id="today_line" style="width: 100%;height:300px;margin-top: 10px"></div>
                <!--电压/温度 今日极值/极差曲线-->
                <div id="today_bar" style="width: 100%;height:300px;margin-top: 10px"></div>
                <!--单体电池 电压/温度 监控-->
                <fieldset>
                    <legend>单体电池 电压 监控</legend>
                     <div class="col-sm-12 div-like-form">
                        <span th:each="parameter,iterStat : ${equipmentManages}">
                            <div class="div-left first-child" th:if="(${iterStat.index})%7==0" style="width: 150px">
                                <div>名称</div>
                                <div>电压(V)</div>
                                <!--<div>温度(℃)</div>-->
                            </div>
                            <div class="div-left">
                                <div th:text="${parameter.name}"></div>
                                <div class="get_voltage_color"
                                     th:text="${parameter.vol!=null?parameter.vol:'0.0'}"></div>
                                <!--<div class="get_temperature_color"-->
                                     <!--th:text="${parameter.tem!=null?parameter.tem:'0.0'}"></div>-->
                            </div>
                        </span>
                    </div>
                    <!--色卡-->
                    <div class="col-sm-12" style="text-align: center; padding-top: 10px">
                        <div class="col-sm-2" style="left: 80px">
                            电压下限&nbsp;<input type="number" id="vol_low" onchange="get_voltage_color('vol_low')"
                                             th:value="${jsonObject.vol_low}">&nbsp;mv
                        </div>
                        <!--色卡-->
                        <div class="col-sm-2" style="padding: 0 35px; left: 300px">
                            <div class="color color-0"></div>
                            <div class="color color-1"></div>
                            <div class="color color-2"></div>
                            <div class="color color-3"></div>
                        </div>
                        <div class="col-sm-2"style="left: 400px">
                            电压上限&nbsp;<input type="number" id="vol_high" onchange="get_voltage_color('vol_high')"
                                             th:value="${jsonObject.vol_high}">&nbsp;mv
                        </div>

                    </div>
                </fieldset>
            </form>
            <!--历史查询-->
            <div id="default-step-1">
                <form style="margin-top: 10px" class="col-sm-12">
                    <div>
                        <label style="margin-right: 15px">测点类别</label>
                        <div class="btn-group btn-group-sm">
                            <button type="button" class="btn btn-choose-red active" name="objType" value="1">电压</button>
                            <button type="button" class="btn btn-choose-red" name="objType" value="3">电流</button>
                            <!--<button type="button" class="btn btn-choose-red" name="objType" value="4">温度</button>-->
                        </div>
                    </div>
                    <div>
                        <label style="margin-right: 15px">测点名称</label>
                        <div id="history_name" class="btn-group btn-group-sm">
                            <button type="button" class="btn btn-choose-red active" name="name" value="模组电压">模组电压
                            </button>
                            <button type="button" class="btn btn-choose-red" name="name" value="单体电压极值和极差">单体电压极值和极差
                            </button>
                        </div>
                    </div>
                    <div>
                        <label style="margin-right: 15px">时间范围</label>
                        <div class="btn-group btn-group-sm">
                            <button type="button" class="btn btn-choose-red active" name="ranges" value="day">日</button>
                            <button type="button" class="btn btn-choose-red" name="ranges" value="week">周</button>
                            <button type="button" class="btn btn-choose-red" name="ranges" value="month">月</button>
                            <button type="button" class="btn btn-choose-red" name="ranges" value="year">年</button>
                            <button type="button" class="btn btn-choose-red" name="ranges" value="custom">自定义</button>
                            <div style="display: inline-block" id="time_select">
                                <input class="form_date"
                                       style="height: 30px; background-color: white !important; border-radius: 5px !important"
                                       type="text" placeholder="开始时间"
                                       id="start_time_select" data-link-field="start_time" data-link-format="yyyy-mm-dd"
                                       readonly>
                                <span>至</span>
                                <input class="form_date"
                                       style="height: 30px; background-color: white !important; border-radius: 5px !important"
                                       type="text" placeholder="结束时间"
                                       id="end_time_select" data-link-field="end_time" data-link-format="yyyy-mm-dd"
                                       readonly>
                                <input type="hidden" id="start_time" name="start_time">
                                <input type="hidden" id="end_time" name="end_time">
                            </div>
                        </div>
                    </div>
                    <div>
                        <label style="margin-right: 15px">显示密度</label>
                        <div id="history_freque" class="btn-group btn-group-sm">
                            <button type="button" class="btn btn-choose-red active" name="freque" value="hour">小时
                            </button>
                            <button type="button" class="btn btn-choose-red" name="freque" value="15">15分钟</button>
                        </div>
                    </div>
                    <div>
                        <label style="margin-right: 15px">显示类别</label>
                        <div id="history_show_type" class="btn-group btn-group-sm">
                            <button type="button" class="btn btn-choose-red active" name="show_type" value="avg">平均值
                            </button>
                            <button type="button" class="btn btn-choose-red" name="show_type" value="min">最小值</button>
                            <button type="button" class="btn btn-choose-red" name="show_type" value="max">最大值</button>
                        </div>
                    </div>
                </form>
                <div id="search_history" class="col-sm-12" style="height: 400px; margin-top: 10px; border-top: 1px solid #C5D0DC;"></div>
            </div>
        </div>
        <hr style="border:0"/>
    </div>
</div>
</body>
</html>